{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "53d05c78",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import sys\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "import variable_encode as var_encode\n",
    "from sklearn.metrics import confusion_matrix,recall_score, auc, roc_curve,precision_score,accuracy_score,cohen_kappa_score,roc_auc_score\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.ensemble import AdaBoostClassifier\n",
    "from sklearn.ensemble import GradientBoostingClassifier\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.font_manager as fm\n",
    "import matplotlib\n",
    "matplotlib.rcParams['font.sans-serif']=['SimHei']   \n",
    "matplotlib.rcParams['axes.unicode_minus']=False  \n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\") ##忽略警告"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8c7ce71d",
   "metadata": {},
   "source": [
    "# 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "540dad1a",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_train_1 = pd.read_excel('最终2018年改变分箱最后19个特征数据的分箱.xlsx')\n",
    "data_test_1 = pd.read_excel('最终2019年-1改变分箱最后19个特征数据的分箱.xlsx')\n",
    "data_test_2 = pd.read_excel('最终2019年-2改变分箱最后19个特征数据的分箱.xlsx')\n",
    "data_test_3 = pd.read_excel('最终2019年-3改变分箱最后19个特征数据的分箱.xlsx')\n",
    "data_test_4 = pd.read_excel('最终2019年-4改变分箱最后19个特征数据的分箱.xlsx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "bf7e7364",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_train_1 = data_train_1.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_1 = data_test_1.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_2 = data_test_2.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_3 = data_test_3.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_4 = data_test_4.drop(columns = ['mths_since_recent_inq'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f1455a81",
   "metadata": {},
   "outputs": [],
   "source": [
    "    ####取出训练数据与测试数据\n",
    "var_all = list(data_train_1.columns)\n",
    "var_all.remove('loan_status')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "65f6013d",
   "metadata": {},
   "source": [
    "# 变量归一化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "24217aa5",
   "metadata": {},
   "outputs": [],
   "source": [
    "####变量归一化\n",
    "scaler = StandardScaler().fit(data_train_1[var_all])\n",
    "data_train_1[var_all] = scaler.transform(data_train_1[var_all])  \n",
    "data_test_1[var_all] = scaler.transform(data_test_1[var_all])\n",
    "data_test_2[var_all] = scaler.transform(data_test_2[var_all])\n",
    "data_test_3[var_all] = scaler.transform(data_test_3[var_all])\n",
    "data_test_4[var_all] = scaler.transform(data_test_4[var_all])\n",
    "    \n",
    "x_train = np.array(data_train_1[var_all])\n",
    "y_train = np.array(data_train_1.loan_status)\n",
    "    \n",
    "x_test_1 = np.array(data_test_1[var_all])\n",
    "y_test_1 = np.array(data_test_1.loan_status)\n",
    "\n",
    "x_test_2 = np.array(data_test_2[var_all])\n",
    "y_test_2 = np.array(data_test_2.loan_status)\n",
    "\n",
    "x_test_3 = np.array(data_test_3[var_all])\n",
    "y_test_3 = np.array(data_test_3.loan_status)\n",
    "\n",
    "x_test_4 = np.array(data_test_4[var_all])\n",
    "y_test_4 = np.array(data_test_4.loan_status)  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e2162d22",
   "metadata": {},
   "source": [
    "# 模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "b88e88e5",
   "metadata": {},
   "outputs": [],
   "source": [
    "RF_model_2 = RandomForestClassifier(random_state=0, n_jobs=-1, criterion='entropy',\n",
    "                                        n_estimators=100,\n",
    "                                        max_depth=9,\n",
    "                                        max_features=0.8,\n",
    "                                        min_samples_split=50,\n",
    "                                        class_weight={1: 3, 0: 1},\n",
    "                                        bootstrap=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1c9be949",
   "metadata": {},
   "outputs": [],
   "source": [
    "RF_model_2_fit = RF_model_2.fit(x_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "765ba075",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.25242626, 0.17571482, 0.08890543, 0.10521178, 0.04642203,\n",
       "       0.0249665 , 0.02427927, 0.02088156, 0.02403278, 0.00971104,\n",
       "       0.02254545, 0.02316895, 0.05149469, 0.02097398, 0.01967686,\n",
       "       0.01931413, 0.04050634, 0.02976813])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "    ##属性\n",
    "ss = RF_model_2_fit.estimators_\n",
    "RF_model_2_fit.classes_\n",
    "RF_model_2_fit.n_features_\n",
    "RF_model_2_fit.feature_importances_"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "121e3e0f",
   "metadata": {},
   "source": [
    "## 模型预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d0edb6da",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred = RF_model_2_fit.predict(x_train)\n",
    "y_proba = RF_model_2_fit.predict_proba(x_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "b07ec21c",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_1 = RF_model_2_fit.predict(x_test_1)\n",
    "y_proba_1 = RF_model_2_fit.predict_proba(x_test_1)\n",
    "y_pred_2 = RF_model_2_fit.predict(x_test_2)\n",
    "y_proba_2 = RF_model_2_fit.predict_proba(x_test_2)\n",
    "y_pred_3 = RF_model_2_fit.predict(x_test_3)\n",
    "y_proba_3 = RF_model_2_fit.predict_proba(x_test_3)\n",
    "y_pred_4 = RF_model_2_fit.predict(x_test_4)\n",
    "y_proba_4 = RF_model_2_fit.predict_proba(x_test_4)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "69d1ec43",
   "metadata": {},
   "source": [
    "# 模型评估"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "091d9e98",
   "metadata": {},
   "source": [
    "## 混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "f81fed4b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>125911</td>\n",
       "      <td>68792</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>21879</td>\n",
       "      <td>43567</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        预测为好   预测为坏\n",
       "标签为好  125911  68792\n",
       "标签为坏   21879  43567"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix = confusion_matrix(y_train,y_pred)\n",
    "cnf_matrix = pd.DataFrame(cnf_matrix,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "bba822b8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>15854</td>\n",
       "      <td>8363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>3570</td>\n",
       "      <td>5832</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  15854  8363\n",
       "标签为坏   3570  5832"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix1 = confusion_matrix(y_test_1,y_pred_1)\n",
    "cnf_matrix1 = pd.DataFrame(cnf_matrix1,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "3cb7be54",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>15665</td>\n",
       "      <td>8460</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>3642</td>\n",
       "      <td>5828</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  15665  8460\n",
       "标签为坏   3642  5828"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix2 = confusion_matrix(y_test_2,y_pred_2)\n",
    "cnf_matrix2 = pd.DataFrame(cnf_matrix2,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "7f1a57db",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>16057</td>\n",
       "      <td>8491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>3538</td>\n",
       "      <td>5706</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  16057  8491\n",
       "标签为坏   3538  5706"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix3 = confusion_matrix(y_test_3,y_pred_3)\n",
    "cnf_matrix3 = pd.DataFrame(cnf_matrix3,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "97059dab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>15686</td>\n",
       "      <td>8472</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>3636</td>\n",
       "      <td>5747</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  15686  8472\n",
       "标签为坏   3636  5747"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix4 = confusion_matrix(y_test_4,y_pred_4)\n",
    "cnf_matrix4 = pd.DataFrame(cnf_matrix4,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix4"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "edc972f0",
   "metadata": {},
   "source": [
    "## 评估指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "8d6ec567",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率</th>\n",
       "      <th>AUC</th>\n",
       "      <th>KS值</th>\n",
       "      <th>kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>随机森林</th>\n",
       "      <td>0.651465</td>\n",
       "      <td>0.718316</td>\n",
       "      <td>0.313242</td>\n",
       "      <td>0.252336</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           准确率       AUC       KS值     kappa\n",
       "随机森林  0.651465  0.718316  0.313242  0.252336"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_suiji = accuracy_score(y_train,y_pred)\n",
    "kappa_suiji = cohen_kappa_score(y_train,y_pred)\n",
    "auc_suiji = roc_auc_score(y_train, y_proba[:,1])\n",
    "fpr_suiji, tpr_suiji, thresholds_roc_suiji = roc_curve(y_train,y_proba[:,1])\n",
    "ks_suiji = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_suiji, fpr_suiji)])\n",
    "results = pd.DataFrame()\n",
    "results['准确率'] = [acc_suiji]\n",
    "results['AUC'] = [auc_suiji]\n",
    "results['KS值'] = [ks_suiji]\n",
    "results['kappa'] = [kappa_suiji]\n",
    "results.index = ['随机森林']\n",
    "results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "debd19fd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_1</th>\n",
       "      <th>AUC_1</th>\n",
       "      <th>KS值_1</th>\n",
       "      <th>kappa_1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>随机森林</th>\n",
       "      <td>0.645052</td>\n",
       "      <td>0.692116</td>\n",
       "      <td>0.280774</td>\n",
       "      <td>0.237866</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         准确率_1     AUC_1     KS值_1   kappa_1\n",
       "随机森林  0.645052  0.692116  0.280774  0.237866"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_suiji = accuracy_score(y_test_1,y_pred_1)\n",
    "kappa_suiji = cohen_kappa_score(y_test_1,y_pred_1)\n",
    "auc_suiji = roc_auc_score(y_test_1, y_proba_1[:,1])\n",
    "fpr_suiji, tpr_suiji, thresholds_roc_suiji = roc_curve(y_test_1,y_proba_1[:,1])\n",
    "ks_suiji = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_suiji, fpr_suiji)])\n",
    "results1 = pd.DataFrame()\n",
    "results1['准确率_1'] = [acc_suiji]\n",
    "results1['AUC_1'] = [auc_suiji]\n",
    "results1['KS值_1'] = [ks_suiji]\n",
    "results1['kappa_1'] = [kappa_suiji]\n",
    "results1.index = ['随机森林']\n",
    "results1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "ce75f9b4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_2</th>\n",
       "      <th>AUC_2</th>\n",
       "      <th>KS值_2</th>\n",
       "      <th>kappa_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>随机森林</th>\n",
       "      <td>0.639768</td>\n",
       "      <td>0.682775</td>\n",
       "      <td>0.267304</td>\n",
       "      <td>0.229309</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         准确率_2     AUC_2     KS值_2   kappa_2\n",
       "随机森林  0.639768  0.682775  0.267304  0.229309"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_suiji = accuracy_score(y_test_2,y_pred_2)\n",
    "kappa_suiji = cohen_kappa_score(y_test_2,y_pred_2)\n",
    "auc_suiji = roc_auc_score(y_test_2, y_proba_2[:,1])\n",
    "fpr_suiji, tpr_suiji, thresholds_roc_suiji = roc_curve(y_test_2,y_proba_2[:,1])\n",
    "ks_suiji = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_suiji, fpr_suiji)])\n",
    "results2 = pd.DataFrame()\n",
    "results2['准确率_2'] = [acc_suiji]\n",
    "results2['AUC_2'] = [auc_suiji]\n",
    "results2['KS值_2'] = [ks_suiji]\n",
    "results2['kappa_2'] = [kappa_suiji]\n",
    "results2.index = ['随机森林']\n",
    "results2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "28415e4c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_3</th>\n",
       "      <th>AUC_3</th>\n",
       "      <th>KS值_3</th>\n",
       "      <th>kappa_3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>随机森林</th>\n",
       "      <td>0.644028</td>\n",
       "      <td>0.685225</td>\n",
       "      <td>0.274002</td>\n",
       "      <td>0.232534</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         准确率_3     AUC_3     KS值_3   kappa_3\n",
       "随机森林  0.644028  0.685225  0.274002  0.232534"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_suiji = accuracy_score(y_test_3,y_pred_3)\n",
    "kappa_suiji = cohen_kappa_score(y_test_3,y_pred_3)\n",
    "auc_suiji = roc_auc_score(y_test_3, y_proba_3[:,1])\n",
    "fpr_suiji, tpr_suiji, thresholds_roc_suiji = roc_curve(y_test_3,y_proba_3[:,1])\n",
    "ks_suiji = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_suiji, fpr_suiji)])\n",
    "results3 = pd.DataFrame()\n",
    "results3['准确率_3'] = [acc_suiji]\n",
    "results3['AUC_3'] = [auc_suiji]\n",
    "results3['KS值_3'] = [ks_suiji]\n",
    "results3['kappa_3'] = [kappa_suiji]\n",
    "results3.index = ['随机森林']\n",
    "results3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "76ad74f0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_4</th>\n",
       "      <th>AUC_4</th>\n",
       "      <th>KS值_4</th>\n",
       "      <th>kappa_4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>随机森林</th>\n",
       "      <td>0.639009</td>\n",
       "      <td>0.683694</td>\n",
       "      <td>0.265706</td>\n",
       "      <td>0.226155</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         准确率_4     AUC_4     KS值_4   kappa_4\n",
       "随机森林  0.639009  0.683694  0.265706  0.226155"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_suiji = accuracy_score(y_test_4,y_pred_4)\n",
    "kappa_suiji = cohen_kappa_score(y_test_4,y_pred_4)\n",
    "auc_suiji = roc_auc_score(y_test_4, y_proba_4[:,1])\n",
    "fpr_suiji, tpr_suiji, thresholds_roc_suiji = roc_curve(y_test_4,y_proba_4[:,1])\n",
    "ks_suiji = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_suiji, fpr_suiji)])\n",
    "results4 = pd.DataFrame()\n",
    "results4['准确率_4'] = [acc_suiji]\n",
    "results4['AUC_4'] = [auc_suiji]\n",
    "results4['KS值_4'] = [ks_suiji]\n",
    "results4['kappa_4'] = [kappa_suiji]\n",
    "results4.index = ['随机森林']\n",
    "results4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "69f82f63",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc1=[results1['准确率_1'],results2['准确率_2'],results3['准确率_3'],results4['准确率_4']]\n",
    "ac1=np.mean(acc1)\n",
    "bc1=np.std(acc1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "08832cea",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc2=[results1['AUC_1'],results2['AUC_2'],results3['AUC_3'],results4['AUC_4']]\n",
    "ac2=np.mean(acc2)\n",
    "bc2=np.std(acc2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "a4bf771c",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc3=[results1['KS值_1'],results2['KS值_2'],results3['KS值_3'],results4['KS值_4']]\n",
    "ac3=np.mean(acc3)\n",
    "bc3=np.std(acc3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "5a7fa6da",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc4=[results1['kappa_1'],results2['kappa_2'],results3['kappa_3'],results4['kappa_4']]\n",
    "ac4=np.mean(acc4)\n",
    "bc4=np.std(acc4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "41423e9c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率的均值</th>\n",
       "      <th>准确率的方差</th>\n",
       "      <th>AUC的均值</th>\n",
       "      <th>KS值的均值</th>\n",
       "      <th>kappa的均值</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>随机森林</th>\n",
       "      <td>0.641964</td>\n",
       "      <td>0.002615</td>\n",
       "      <td>0.685953</td>\n",
       "      <td>0.271947</td>\n",
       "      <td>0.231466</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        准确率的均值    准确率的方差    AUC的均值    KS值的均值  kappa的均值\n",
       "随机森林  0.641964  0.002615  0.685953  0.271947  0.231466"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results11 =pd.DataFrame({'准确率的均值':{'随机森林':ac1},'准确率的方差':{'随机森林':bc1},\n",
    "                   'AUC的均值':{'随机森林':ac2},'KS值的均值':{'随机森林':ac3},\n",
    "                   'kappa的均值':{'随机森林':ac4}})\n",
    "results11"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e1faf8d6",
   "metadata": {},
   "source": [
    "## ROC和KS曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "5766aa22",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_suiji_1= y_proba_1\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_1))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_1,y_proba_suiji_1[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "236b9d8a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_suiji_2= y_proba_2\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_2))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_2,y_proba_suiji_2[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "43291d89",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_suiji_3= y_proba_3\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_3))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_3,y_proba_suiji_3[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "2aaedff9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_suiji_4= y_proba_4\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_4))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_4,y_proba_suiji_4[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "298c3549",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_suiji_1= y_proba_1\n",
    "y_proba_suiji_2= y_proba_2\n",
    "y_proba_suiji_3= y_proba_3\n",
    "y_proba_suiji_4= y_proba_4\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_1))):\n",
    "    fpr_1,tpr_1,thresholds_1 = roc_curve(y_test_1,y_proba_suiji_1[:,i],pos_label = i)\n",
    "for i in range(len(np.unique(y_test_2))):\n",
    "    fpr_2,tpr_2,thresholds_2 = roc_curve(y_test_2,y_proba_suiji_2[:,i],pos_label = i)\n",
    "for i in range(len(np.unique(y_test_3))):\n",
    "    fpr_3,tpr_3,thresholds_3 = roc_curve(y_test_3,y_proba_suiji_3[:,i],pos_label = i)\n",
    "for i in range(len(np.unique(y_test_4))):\n",
    "    fpr_4,tpr_4,thresholds_4 = roc_curve(y_test_4,y_proba_suiji_4[:,i],pos_label = i)    \n",
    "axe1.plot(fpr_1,tpr_1)\n",
    "axe1.plot(fpr_2,tpr_2)\n",
    "axe1.plot(fpr_3,tpr_3)\n",
    "axe1.plot(fpr_4,tpr_4)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds_1,tpr_1,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_1,fpr_1,label = 'FPR')\n",
    "axe2.plot(1 - thresholds_2,tpr_2,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_2,fpr_2,label = 'FPR')\n",
    "axe2.plot(1 - thresholds_3,tpr_3,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_3,fpr_3,label = 'FPR')\n",
    "axe2.plot(1 - thresholds_4,tpr_4,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_4,fpr_4,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "e970a7f1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "matplotlib.rcParams['font.sans-serif']=['SimHei']   \n",
    "matplotlib.rcParams['axes.unicode_minus']=False  \n",
    "font={'family':'SimHei',\"size\":18}\n",
    "matplotlib.rc(\"font\",**font)\n",
    "fig=plt.figure(figsize=(5,5))\n",
    "plt.title('ROC曲线')\n",
    "plt.plot(fpr_1,tpr_1,color='g',label=\"ROC_1\")\n",
    "plt.plot(fpr_2,tpr_2,color='r',label=\"ROC_2\")\n",
    "plt.plot(fpr_3,tpr_3,color='b',label=\"ROC_3\")\n",
    "plt.plot(fpr_4,tpr_4,color='y',label=\"ROC_4\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "31362041",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "matplotlib.rcParams['font.sans-serif']=['SimHei']   \n",
    "matplotlib.rcParams['axes.unicode_minus']=False  \n",
    "font={'family':'SimHei',\"size\":18}\n",
    "matplotlib.rc(\"font\",**font)\n",
    "fig=plt.figure(figsize=(5,5))\n",
    "plt.title('KS曲线')\n",
    "plt.plot(1 - thresholds_1,tpr_1,color='g',label='TPR')\n",
    "plt.plot(1 - thresholds_1,fpr_1,color='g',label='FPR')\n",
    "plt.plot(1 - thresholds_2,tpr_2,color='r',label='TPR')\n",
    "plt.plot(1 - thresholds_2,fpr_2,color='r',label='FPR')\n",
    "plt.plot(1 - thresholds_3,tpr_3,color='b',label='TPR')\n",
    "plt.plot(1 - thresholds_3,tpr_3,color='b',label='FPR')\n",
    "plt.plot(1 - thresholds_4,tpr_4,color='y',label='TPR')\n",
    "plt.plot(1 - thresholds_4,tpr_4,color='y',label='FPR')\n",
    "plt.xlim(0,)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d75b944a",
   "metadata": {},
   "source": [
    "##  k折交叉检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "dde6fccc",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import KFold\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.model_selection import train_test_split\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\") ##忽略警告"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "4e0b2187",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率均值</th>\n",
       "      <th>准确率标准差</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>随机森林</th>\n",
       "      <td>0.643919</td>\n",
       "      <td>0.004259</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         准确率均值    准确率标准差\n",
       "随机森林  0.643919  0.004259"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#ef muti_score(model):\n",
    "warnings.filterwarnings('ignore')\n",
    "accuracy = cross_val_score(RF_model_2, x_train, y_train, scoring='accuracy', cv=5)\n",
    "acc_mean=accuracy.mean()\n",
    "acc_std=accuracy.std()\n",
    "results = pd.DataFrame()\n",
    "results[\"准确率均值\"] = [acc_mean]\n",
    "results[\"准确率标准差\"] = [acc_std]\n",
    "results.index = ['随机森林']\n",
    "results\n",
    "#rint(\"准确率均值\",accuracy.mean())\n",
    "#rint(\"准确率方差\",accuracy.var())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fdbf1acf",
   "metadata": {},
   "source": [
    "## 模型psi计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "1a345a05",
   "metadata": {},
   "outputs": [],
   "source": [
    "def cal_psi(actual, predict, bins=10):\n",
    "    actual_min = actual.min()  # 实际中的最小概率\n",
    "    actual_max = actual.max()  # 实际中的最大概率\n",
    "    binlen = (actual_max - actual_min) / bins\n",
    "    cuts = [actual_min + i * binlen for i in range(1, bins)]#设定分组\n",
    "    cuts.insert(0, -float(\"inf\"))\n",
    "    cuts.append(float(\"inf\"))\n",
    "    actual_cuts = np.histogram(actual, bins=cuts)#将actual等宽分箱\n",
    "    predict_cuts = np.histogram(predict, bins=cuts)#将predict按actual的分组等宽分箱\n",
    "    actual_df = pd.DataFrame(actual_cuts[0],columns=['actual'])\n",
    "    predict_df = pd.DataFrame(predict_cuts[0], columns=['predict'])\n",
    "    psi_df = pd.merge(actual_df,predict_df,right_index=True,left_index=True)\n",
    "    psi_df['actual_rate'] = (psi_df['actual'] + 1) / psi_df['actual'].sum()#计算占比，分子加1，防止计算PSI时分子分母为0\n",
    "    psi_df['predict_rate'] = (psi_df['predict'] + 1) / psi_df['predict'].sum()\n",
    "    psi_df['psi'] = (psi_df['actual_rate'] - psi_df['predict_rate']) * np.log(\n",
    "        psi_df['actual_rate'] / psi_df['predict_rate'])\n",
    "    psi = psi_df['psi'].sum()\n",
    "    return psi, psi_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "9038b7e7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0034783025186932446,\n",
       "    actual  predict  actual_rate  predict_rate       psi\n",
       " 0    7627      935     0.029322      0.027841  0.000077\n",
       " 1   17935     2374     0.068945      0.070645  0.000041\n",
       " 2   25948     3473     0.099747      0.103334  0.000127\n",
       " 3   39059     5130     0.150145      0.152622  0.000041\n",
       " 4   52214     6853     0.200712      0.203873  0.000049\n",
       " 5   50742     6678     0.195054      0.198667  0.000066\n",
       " 6   34000     4464     0.130698      0.132812  0.000034\n",
       " 7   20843     2484     0.080123      0.073917  0.000500\n",
       " 8    9758     1074     0.037513      0.031976  0.000884\n",
       " 9    2023      154     0.007780      0.004610  0.001659)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values11=cal_psi(y_proba[:,1], y_proba_1[:,1],10)\n",
    "psi_values11"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "b73b6ca7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0018358588284002508,\n",
       "    actual  predict  actual_rate  predict_rate           psi\n",
       " 0    7627      989     0.029322      0.029469  7.352521e-07\n",
       " 1   17935     2342     0.068945      0.069743  9.169965e-06\n",
       " 2   25948     3346     0.099747      0.099628  1.414885e-07\n",
       " 3   39059     5204     0.150145      0.154934  1.503668e-04\n",
       " 4   52214     6753     0.200712      0.201042  5.418670e-07\n",
       " 5   50742     6688     0.195054      0.199107  8.337048e-05\n",
       " 6   34000     4355     0.130698      0.129662  8.245134e-06\n",
       " 7   20843     2630     0.080123      0.078315  4.126933e-05\n",
       " 8    9758     1113     0.037513      0.033160  5.370184e-04\n",
       " 9    2023      175     0.007780      0.005239  1.005000e-03)"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values12=cal_psi(y_proba[:,1], y_proba_2[:,1],10)\n",
    "psi_values12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "d7e56923",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0036113165323784055,\n",
       "    actual  predict  actual_rate  predict_rate       psi\n",
       " 0    7627     1046     0.029322      0.030984  0.000092\n",
       " 1   17935     2373     0.068945      0.070253  0.000025\n",
       " 2   25948     3460     0.099747      0.102421  0.000071\n",
       " 3   39059     5232     0.150145      0.154859  0.000146\n",
       " 4   52214     6809     0.200712      0.201527  0.000003\n",
       " 5   50742     6676     0.195054      0.197591  0.000033\n",
       " 6   34000     4436     0.130698      0.131303  0.000003\n",
       " 7   20843     2528     0.080123      0.074840  0.000360\n",
       " 8    9758     1088     0.037513      0.032227  0.000803\n",
       " 9    2023      144     0.007780      0.004291  0.002076)"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values13=cal_psi(y_proba[:,1], y_proba_3[:,1],10)\n",
    "psi_values13"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "84fa6b11",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.00305687350754299,\n",
       "    actual  predict  actual_rate  predict_rate           psi\n",
       " 0    7627     1064     0.029322      0.031752  1.935551e-04\n",
       " 1   17935     2366     0.068945      0.070570  3.786723e-05\n",
       " 2   25948     3434     0.099747      0.102412  7.028323e-05\n",
       " 3   39059     5035     0.150145      0.150145  1.050787e-13\n",
       " 4   52214     6791     0.200712      0.202498  1.583158e-05\n",
       " 5   50742     6701     0.195054      0.199815  1.148404e-04\n",
       " 6   34000     4370     0.130698      0.130318  1.106787e-06\n",
       " 7   20843     2592     0.080123      0.077308  1.006755e-04\n",
       " 8    9758     1009     0.037513      0.030112  1.626335e-03\n",
       " 9    2023      179     0.007780      0.005367  8.963790e-04)"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values14=cal_psi(y_proba[:,1], y_proba_4[:,1],10)\n",
    "psi_values14"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "2d962b83",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0029955878467537228"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bcc2=[psi_values11[0],psi_values12[0],psi_values13[0],psi_values14[0]]\n",
    "bbc2=np.mean(bcc2)\n",
    "bbc2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "a55e7a92",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PSI</th>\n",
       "      <th>PSI_1</th>\n",
       "      <th>PSI_2</th>\n",
       "      <th>PSI_3</th>\n",
       "      <th>PSI_4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>随机森林</th>\n",
       "      <td>0.002996</td>\n",
       "      <td>0.003478</td>\n",
       "      <td>0.001836</td>\n",
       "      <td>0.003611</td>\n",
       "      <td>0.003057</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           PSI     PSI_1     PSI_2     PSI_3     PSI_4\n",
       "随机森林  0.002996  0.003478  0.001836  0.003611  0.003057"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results111 =pd.DataFrame({'PSI':{'随机森林':bbc2},'PSI_1':{'随机森林':psi_values11[0]},'PSI_2':{'随机森林':psi_values12[0]},\n",
    "                   'PSI_3':{'随机森林':psi_values13[0]},'PSI_4':{'随机森林':psi_values14[0]}})\n",
    "results111"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "83ddc066",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6f745c0e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "288px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
